This invention pertains generally to apparatus, system, and method that provide multiple operating system support and a fast or task-specific startup capability in a computer or information appliance device, and more particularly to apparatus, system, and method that permits a user to select and execute one of a plurality of operating systems available on the device at the time of powering on the device and where data generated by an application program executing within one of the plurality of operating systems is available to a different application program executing within a different operating system on the same device.
Today""s modem personal computers typically includes a microprocessor, a memory system, data storage devices, and input/output (I/O) devices such as monitor or display, keyboard, pointing devices such as mouse, touch-screen, or other pointing device, and communication devices, among others. The computer system is typically initialized, or boot-strapped (xe2x80x9cbootedxe2x80x9d), during or immediately after a power-up or reset initiated sequence using system software and/or information representing a sequence of internal control variables which is usually stored, at least in part, within a system read-only-memory (ROM). The ROM in which this information is stored is generally referred to as the BIOS which is an acronym for Basic Input/Output System, as this information provides some fundamental information to the processor as to how to the processor relates to inputs from and outputs to its environment. Since the system ROM is desirably non-volatile, the contents of the ROM contains valid data and/or instructions so that the computer system can be reliably boot-strapped to a point where the operating system of the computer can be loaded to complete the boot-up sequence. Normally, an operating system is required before other programs referred to as xe2x80x9capplications programsxe2x80x9d can be loaded and executed.
One computer system using the ROM-based boot code approach is the type of computer referred to as an IBM personal computer (PC) and variants referred to as IBM PC compatibles, PC clones, or simply IBM or PC compatibles. Another type of computer is the Macintosh line of computers, including the iMac, and variants thereof made by Apple Computer, Inc. of Cupertino Calif. Increasingly, computers are available in a variety of form factors such as main-frame models, desk top models, notebook models, lap top models, sub-notebook models, Personal Data Assistants (PDA), Personal Information Manager (PIM), and the like. In addition, many computers, information appliances, and other electronic devices have the equivalent of a start-up or boot-sequence requirement and capability. We focus this discussion on the IBM PC because of its large market share and because it is representative of a large class of computers, information appliances, and other devices which suffer from the limitations of conventional structure and methods, and which may benefit from the invention which is described in detail elsewhere in this specification; however, those workers having ordinary skill in the art will appreciate that the invention pertains to all such computers.
In an IBM PC or an IBM compatible PC system, the system ROM stores the Basic Input/Output System (BIOS) which is executed upon power-up by the processor, microprocessor, or CPU to initialize the computer system. Initialization typically involves first performing a Power On Self-Test (POST) routine, and then providing certain low-level, hardware dependent support for the system display or monitor, floppy disk drive(s), hard disk drive(s), communication devices, and other devices that may be present on the computer. More sophisticated routines and data may be included in the system ROM depending upon the needs and complexity of a given computer system. As the level of sophistication of computer systems and information appliances increases, the routines and data stored in the ROM are updated to match the needs of the computer system and its suite of devices. Additional details of the boot-up procedures for exemplary operating systems are described hereinafter.
All or virtually all computers, such as the various models of personal computers (PCs) produced by IBM Corporation, execute xe2x80x9coperating system softwarexe2x80x9d that instructs the computer how to use other programs, termed xe2x80x9capplication softwarexe2x80x9d, xe2x80x9capplication programsxe2x80x9d, or the like, such as word processing programs, spreadsheet programs, data base programs, and information management programs. Examples of PC operating systems include MS-DOS, PC-DOS, OS/2, Microsoft Windows 2.x, Microsoft Windows 3.x, Windows 95, Windows 98, Windows 2000, Windows NT 4.0, UNIX, and Linux, to name a few examples.
Before a PC can run an operating system, it must load the operating system from a floppy disk, a hard disk drive, or other storage medium to the PC""s working memory (which is ordinarily random access semiconductor memory or RAM), in addition to loading the BIOS. This is carried out through a process known as boot-strapping, or more simply, booting the PC.
xe2x80x9cBootingxe2x80x9d refers to the process that occurs when a powered-off PC is first started (called a xe2x80x9ccold bootxe2x80x9d), or for an already-powered on PC when a xe2x80x9crestartxe2x80x9d command is issued to the computer through its operating system interface or when the user hits a hardware restart button (the latter cases being called a xe2x80x9cwarm bootxe2x80x9d). All cases which we will call booting is typically characterized by the resetting of most of the PC""s volatile memory state to a starting state followed by the loading and initialization of the operating system session.
Modem PC systems also support halting of usage with one or more xe2x80x9csleepxe2x80x9d states where the memory state of usage session is preserved while the CPU is halted and the system is placed in a low power consumption state. The hardware of a system in such a suspended state typically cannot be used for purposes other than the suspended session because state changes in the system would conflict with assumptions of the suspended state. Booting is different from the suspend/resume states, therefore, we make a distinction between booting and sleep-related processes. Additional information is available in xe2x80x9cInstantly Available Power Managed Desktop PC Design Guide,xe2x80x9d Version 1.2, published by Intel Corporation 25 Sep. 1998, and available on the world-wide-web as of 04 April 2000 at the address http://developer.intel.com/technology/iapc/downloads/IAPCDGrev1xe2x80x942. pdf, which document is herein incorporated by reference.
We now describe the nominal boot-strapping or boot procedure under Windows 98 so as to establish a background of information and terminology as to how the inventive structure and procedure operates in conjunction with this procedure; however, the discussion of DOS, Windows 1 .x, Windows 2.x, Windows 3.x, Windows CE, Windows 95, Windows 98, or Windows 2000, and/or of the operation of the invention relative to these operating environments or systems is merely exemplary and not limiting.
By way of overview, after power-on, Microsoft Windows 98 boots in roughly four stages: (1) Loading and initializing the BIOS, (2) Loading real-mode drivers and Terminate and Stay Resident (TSR) programs for backward compatibility with DOS, (3) Loading and initializing Windows specific device drivers (static VxDs) in real mode, and (4) Loading and starting up the protected-mode operating system and loading any remaining VxDs. The details of these Windows 98 boot stages, as well as the start up and booting of other Microsoft Windows operating system versions and non-Microsoft operating systems are known in the art not described in detail here. The interested reader is referred to numerous publications published by Microsoft Corporation and Microsoft press and others. For example, xe2x80x9cExpert Guide to Windows 98xe2x80x9d, Mark Minasi, Eric Christiansen, and Kristina Shapar, 1998, Sybex, 1151 Marina Village Parkway, Alameda, Calif. 94501; describes Microsoft Windows 98 throughout (pp. 1-899) and the Windows 98 startup and boot operations (pp. 544-577), and is hereby incorporated by reference.
It may readily be appreciated that the Windows 3.x, Windows NT, Windows 95, Windows 98, Windows 2000, Windows 2000 Professional, Microsoft Millennium Edition, Windows NT 2000, as well as other WIN32-based operating systems, UNIX, Apple Macintosh System 8, and undoubtedly future modifications, updates, and enhancements to the these operating systems and environments require considerable time to complete each of the steps involved with their respective startup or boot procedures. Each provides a wealth of features, capabilities, and options within the operating system and further provides means for adding functionality provided by compatible third-party software and hardware manufacturers. By comparison, a minimal operating system of some type not having the sophisticated features, capabilities, options, and compatibilities running on the same computer or information appliance, or not all available features activated, might be expected to complete startup or boot operation in considerably less time and more reliability and deterministically. Besides speed and reliability, a complex system has a problem in that there are more interacting components which could raise issues during the boot process and which might interfere with unattended boot operation (described elsewhere in this specification). For example, a dialog box requiring a user input may unexpectedly appear during a boot operation that would halt the boot until a response were provided.
For example, the so called xe2x80x9cDisk Operating Systemxe2x80x9d (DOS), versions of which have been released by Microsoft Corporation, IBM, and others, have a reduced set of capabilities as compared to the newer and more sophisticated operating systems (OS) described above, and a radically faster startup or boot time. Empirical data suggest that this difference may be at least about five times greater for a Microsoft Windows 98 boot than for a DOS boot on the same computer hardware, and probably considerably more. Like DOS, other operating systems that provide a more limited predetermined set of capabilities may also be expected to boot in considerably less time than the time required for the exemplary Windows 98 operating system.
As a further point of comparison, several popular portable personal information managers (PIMs) or personal data managers (PDAs) known as the Palm OS based devices (for example, Palm III, Palm IV, and Palm V, Palm VII) as well as the Microsoft Windows CE based devices (for example, Clio made by Vadem, Cassiopia made by Casio, and the like) provide a virtually instant on capability, wherein the elapsed period of time between pressing the xe2x80x9conxe2x80x9d or xe2x80x9cpowerxe2x80x9d button and the ability to access or otherwise query the device is a couple of seconds. It is noted that in most of these devices electrical operating power is not actually switched ON or OFF in spite of the suggestion on the xe2x80x9cpowerxe2x80x9d button, rather the toggle of the ON/OFF button causes the system to transition from a dormant state or sleep mode to an active state, and pressing the xe2x80x9con/offxe2x80x9d button merely sends an interrupt to the processor to alter its operating state.
In both the Palm OS based systems and the Windows CE based systems, such as for example in the Clio computing system (made by VADEM of San Jose, Calif.), each of the Windows CE operating system as well as application programs are stored in fast solid state ROM (or flash RAM) and loaded into system RAM for execution by the processor virtually instantaneously so that the user is not aware of any significant delay. In general the delay between pressing the on/off button and the appearance of a screen display or acceptance of a user command will be on the order of from one to a couple of seconds.
Windows 95, 98, 2000 and similar operating system based computing systems are capable of being placed in a suspend state in which they appear to be off and consume less power than when in an active state; and wherein the time to transition back to an active state is less than the time to perform a cold boot, unfortunately, this type of suspend/sleep to active mode transition is not completely satisfactory for applications such as personal information manager applications (PIM) because data remains in memory and the memory continues to consume power and there is risk that data will be lost if battery power runs low while in the suspend/sleep state. In any event the time to transition from the suspend/sleep state to active state is still quite long.
While these Palm size devices and sub-notebook computers operating under the Palm operating System or the Windows CE operating system are useful, many users desire the features which are only available on a Windows 95, 98, 2000, NT, UNIX, Linux, Apple Macintosh Operating System 8, or other general-purpose computing machines for which a full suite of user application programs is available. At this time, the Palm size and sub notebook computing machines which provide for virtually instant on operation have the useful but limited set of applications and do not provide the full suite of application programs or hardware peripheral connectivity desired by users. The user has heretofore been forced to choose between the xe2x80x9cinstant-onxe2x80x9d or xe2x80x9cfast-startxe2x80x9d capability of computing machines or information appliances having limited applications and those having virtually unlimited applications but consuming a much longer period time for the desired application and its associated data to become available after the user has toggled the ON/OFF button.
While a delay may be tolerable for some applications such as a graphical or pictorial drawing application program, a sophisticated word processing application program, or other application program where the user will spend the considerable percentage of time interacting with that program and where the delay encountered in booting the operating system and loading the application program represents a minor percentage of the total time involved with the task, such a delay may not be tolerable when the period of delay approaches the time need to interact and complete the task. For example, a business traveler may desire to access a particular telephone number from a phone book within their personal information manager so that they may telephone a customer or colleague before boarding an aircraft. The time required to look up the telephone number once the computer is operable may be only a matter of a few seconds; however, the time required to boot the Windows 98 based general personal computer may well exceed two or more minutes. Under these circumstances the user is dissuaded from looking up the telephone number or making the telephone call. Another example is a situation where the user would like to enter a note in a notepad type application, but, rather than booting the Windows 98 operating system based machine to launch a word processing or other notepad application instead chooses to rely on memory or jot the note on a sheet of paper, taking a risk that either the intended remark will be forgotten or that the physical paper is lost, forgotten, or misplaced.
Therefore there remains a need for an xe2x80x9cinstant-onxe2x80x9d or xe2x80x9crapid-onxe2x80x9d and fast application program load and execution capability for certain application programs including calendar, phone book, e-mail reference, notepad, internet content access, email access, and other applications, comparable to that provided with certain palm size, hand-held, and sub-notebook computers running under Windows CE OS, Palm OS, or other ROM based operating systems, in a general-purpose full operating system (Microsoft Windows, Unix, and the like operating system) personal computer, so that users of the general purpose computer will have the vast array of application programs available for such general purpose computers as well as rapid access to one or more particular application programs.
There also remains a need for a computer system or information appliance that can be turned off and yet boot to a state where it can upload or download information from a remote location, such as server on the Internet. In this way information can be sent or received from the computer when available even though the machine is unattended.
There is also a need to permit such unattended data or content upload or download while presenting minimum security exposure to parts of the system not directly involved with the content upload or download.
There is also a need for a universal information appliance that satisfies the needs of a computer user by providing a single information appliance having a full suite of sophisticated programmatic features yet provides fast access to at least a subset of commonly used application programs (such as an email and personal information manager) and audio entertainment operability for times when the user is between work tasks.
In some traditional dual-boot systems and methods, such methods focus on providing a capability to boot from more than one alternative operating system, or the ability to alter an existing single boot system into a dual-boot system after the first booting system has already been installed on the computer. In any event, such systems do not provide the multiple simultaneous operating system support where there is a shared logical storage region where application programs may write data and intercommunicate in the manner provided by the present invention.
Therefore there remains a need for device, system, method, computer program, and operating model that overcome the limitations of conventional computer systems and information appliances.